
Das Streben nach perfekter Performance ist eine nie endende Reise. Es ist nicht gewonnen, sobald dieser eine Engpass behoben wurde, auch wenn sich das wie ein epischer und glorreicher Kampf anfühlen mag. Es ist ein fortwährendes Bestreben, Probleme schnell zu identifizieren und zu beseitigen, bevor sie außer Kontrolle geraten, damit die Performance so reibungslos wie möglich läuft.
Doch das wirft die Frage auf: Ist perfekte Performance überhaupt möglich? Nun, Perfektion ist in keinem Bereich wirklich möglich. Aber man kann ihr sehr, sehr nahe kommen.
Lasst uns einen Schlachtplan ausarbeiten! Oder besser noch: eine Observability-Strategie. Ein solcher Plan ist entscheidend für Unternehmen, die in einer schnelllebigen und sich ständig verändernden Umgebung zuverlässige, leistungsstarke Software bereitstellen wollen.
Die Umsetzung einer Überwachungs- und Observability-Strategie ermöglicht es Unternehmen, ihre Systeme proaktiv zu überwachen – was weitaus besser ist, als darauf zu warten, dass Probleme auftreten, und dann erst darauf zu reagieren.
Blackfire bietet eine einzigartige und umfassende Überwachungs- und Observability-Lösung, mit der du deine eigene Strategie entwickeln kannst – und das Beste daran: Sie ist über die Upsun Cloud verfügbar.
Im Folgenden findest du die Faktoren einer möglichen Beobachtbarkeitsstrategie, die du umsetzen kannst. Wenn du dich dafür entscheidest, besteht deine Aufgabe darin, einen Plan zu entwickeln, der sowohl zu deinem Unternehmen als auch zu deinen Praktiken beim Programmieren und Bereitstellen passt.
The blackfire monitoring provides an overview of the performance of an application, including all the HTTP traffic that is monitored standardly. The CLI can also be instrumented with a simple configuration.
Die blackfire-Überwachung informiert dich, wann und wo ein bestimmtes Problem aufgetreten ist, sodass du schnell darauf reagieren kannst. Du kannst bis auf eine bestimmte Transaktion herunterzoomen, um den Beitrag der verschiedenen verwendeten Dienste – wie Redis, Datenbank, HTTP usw. – zur Antwortzeit zu untersuchen.
Da du nicht den ganzen Tag darauf warten wirst, dass ein Absturz passiert, kannst du Warnmeldungen einrichten, damit du benachrichtigt wirst. Der Zugriff auf wichtige Informationen muss nicht im Widerspruch zu deinem bestehenden Arbeitsablauf stehen. Warnmeldungen und Abklingzeiten werden an jeden Kanal weitergeleitet, den du bereits nutzt, wie E-Mail, Slack, Microsoft Teams oder andere Webdienste.
Sobald eine Diagnose vorliegt, kannst du mit dem blackfire-Profiler so tief wie möglich in das Anwendungsverhalten eintauchen, bis du die genauen Funktions- oder Serviceaufrufe findest, die für das performance-Problem verantwortlich sind. Der blackfire-Profiler hilft dir außerdem zu verstehen, warum sich deine Anwendung auf eine bestimmte Weise verhält.
Alle deine SQL-Abfragen und HTTP-Aufrufe werden identifiziert und neben den Aufrufgraphen und Zeitleistenansichten aufgelistet. Um die Einblicke in die Überwachung und Beobachtbarkeit noch umfassender zu gestalten, bietet das Profil außerdem „Empfehlungen“ – eine Liste umsetzbarer Erkenntnisse sowie detaillierte Informationen zur Cache-Nutzung und -Konfiguration.
Sobald das Skript programmiert ist und der Code optimiert wurde, empfiehlt es sich, die Profile vor und nach der Optimierung zu vergleichen, um sicherzustellen, dass unsere Korrektur keine Nebenwirkungen verursacht.
Bevor du den Code in die Produktivumgebung überträgst, musst du noch eine Sache erledigen: Tests schreiben.
Blackfire bietet eine umfangreiche Testsuite. Benutzerdefinierte Assertions werden in einer .blackfire.yaml-Datei definiert und bei jedem Aufruf eines Profils ausgewertet. Das erleichtert das Erkennen von Performance-Rückschritten.
Außerdem gibt es Integrationen mit PHPUnit, Behat, Symfony Functional Tests und Laravel-Tests. Dank der blackfire-SDKs für PHP und Python lassen sich weitere Integrationen realisieren.
The performance of the critical user journeys of your applications can also be evaluated regularly. These user journeys and the expectations for each of them can be described in scenarios.
Bei der Auswertung wird in jedem Schritt jedes Szenarios ein Profil ausgelöst. Wie bei allen Profilen werden die zu den Anfragen passenden Assertions ausgewertet. Ein Build-Bericht fasst die Ergebnisse all dieser Profile zusammen.
Ein Build-Bericht ist ein praktisches Tool, um den Zustand großer Teile einer Anwendung auf einen Blick zu überprüfen. Blackfire-Builds können manuell, in regelmäßigen Abständen und über Webhooks ausgelöst werden.
Wir können euch gar nicht genug empfehlen, die neueste Generation der blackfire-Builds in eure CI/CD-Pipelines zu integrieren. Solche Integrationen verhindern, dass ein Pull-Request zusammengeführt oder Code in der Produktivumgebung bereitgestellt wird, wenn dies die performance eurer Anwendung beeinträchtigt. Das sichert langfristig die performance eurer Anwendungen.
Darüber hinaus schützen automatisierte und regelmäßige Leistungstests, die in die CI/CD-Pipelines eingebunden sind, die Anwendung vor Leistungseinbußen.
Artikel ursprünglich veröffentlicht von Thomas di Luccio auf blackfire.io.